async function async1() {
    console.log('async1 start');
    await async2();
    console.log('async1 end');
}
async function async2() {
    console.log('async2 start');
    await async3();
    console.log('async2 end');
};
async function async3() {
    console.log('async3 start');
    await async4();
    console.log('async3 end');
};
async function async4() {
    console.log('async4');
};
console.log('script start');
setTimeout(function () {
    console.log('setTimeout');
},0);
async1();
new Promise(function (resovle) {
    console.log('Promise1');
    resovle();
}).then(
    function(){
        console.log('Promise2');
    }
);
console.log('script end-----------');